#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "Serial.h"
#include "Ds18b20.h"
#include "Buzzer.h"

uint8_t ucbuf[17];
float temp_data=0.0;
float temp_data1=0.0;


void TEMP_Value_Conversion()
{
	temp_data=DS18B20_Get_Temp();
	temp_data1=temp_data/10.0;
	sprintf((char*)ucbuf,"%4.2f",temp_data1);
	OLED_ShowString(1,1,"Temp:");
  OLED_ShowString(1,6,(uint8_t*)ucbuf);
	OLED_ShowChar(1,11,'C');
}


int main(void)
{
	uint8_t   i=0;
	uint16_t  dis=0;
	
	OLED_Init();
	DS18B20_Init();
	Serial_Init();
	Buzzer_Init();
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	

	while(1)
	{	
		TEMP_Value_Conversion();
	if(temp_data1>=26.0&&temp_data1<=30.0 )
	{
	Buzzer_ON();
		
		
		GPIO_Write(GPIOA,0x0001);
		Delay_ms(500);
		GPIO_Write(GPIOA,0x0002);
		Delay_ms(500);
		GPIO_Write(GPIOA,0x0004);
		Delay_ms(500);
		GPIO_Write(GPIOA,0x0008);
		Delay_ms(500);
		GPIO_Write(GPIOA,0x0010);
		Delay_ms(500);
		GPIO_Write(GPIOA,0x0020);
		Delay_ms(500);
		GPIO_Write(GPIOA,0x0040);
		Delay_ms(500);
		GPIO_Write(GPIOA,0x0080);
		Delay_ms(500);
		
}
  else
	{
		Buzzer_OFF();
	}
		Delay_ms(500);
	
	}
}